The present invention is generally directed to registration of multiple 3D point sets to construct a 3D computer model. More specifically, the present invention is directed to registration of multiple 3D point sets via optimization on a manifold.
Constructing a three dimensional (3D) computer model of a real object from 3D surface measurement data has various applications in computer graphics, virtual reality, computer vision, and reverse engineering. To construct such a model, a 3D scanner can be used to gather surface measurement data of an object. However, a single view of an object is often insufficient due to self occlusion, the presence of shadows, and limitations of the field of view of the 3D scanner. Therefore, multiple partial views of the object are needed to provide surface measurement data for the entire object.
Typically, multiple overlapping views are obtained from multiple 3D scanners or from a single 3D scanner positioned at different positions and orientations with respect to an object. Multiple overlapping views can also be obtained from a 3D scanner in a fixed position taking time sampled images of an object on a moving turntable. Each view or image taken of the object consists of a 3D point set representing features of the surface of the object on a reference frame or coordinate system with an origin at a location of the 3D scanner used to obtain the 3D point set. However, the relative position and orientation between the views are known imprecisely or not at all. Accordingly, in order to generate a computer 3D model, the overlapping views must be combined, or “registered”, within a common reference frame or coordinate system by determining the relative position and orientation between the views.
Two-view registration is a well-studied problem in the art. As known in the art, a closed-form solution can be used to obtain the relative position and orientation of two 3D point sets, such that the least squared error between overlapping points of the two 3D point sets is minimized.
Multiview registration, however, is a more difficult problem. There are two strategies that can be used in order to register three or more views, local (sequential) registration and global (simultaneous) registration. Local registration involves sequentially aligning two overlapping views at a time followed by an integration step to ensure that all views are combined. However, local registration does not give an optimal solution because errors can accumulate and propagate when registering each sequential pair of views.
Global registration refers to registering all of the multiple views simultaneously by distributing the registration error evenly over all of the views. In this case an error function can be expressed in terms of translation vectors, which correspond to a relative position of an origin of a coordinate system for each view, and rotational matrices, which correspond to a relative rotational orientation of the coordinate system of each view. However, this error function is a non-convex function which is difficult to minimize globally. Conventional optimization approaches for minimizing the error function do not consistently converge at an optimum solution for the relative positions and orientations of the coordinate systems of the view. Accordingly, both conventional local and global registration techniques do not minimize the registration error, which is desirable when registering 3D point sets.